package demo006;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Vector;

/**
 * Set HashSet ，List ArrayList的用法
 * Map HashMap用法
 * Collections
 * Iterator
 * @author zanglaowei
 *
 */
public class demo006 {
	
	public static void main(String args[]){
//		System.out.println("----------HashMap的用法-----------");
//		TestHashMap();
//		System.out.println("----------ArrayList的用法-----------");
//		TestArrayList();
		System.out.println("----------Set的用法-----------");
		TestSet();
	}
	
	/**
	 * HashMap 的用法
	 */
	public  static void TestHashMap(){
		Map<String,String> mapB=new HashMap<String,String>();
		mapB.put("apple", "苹果");
		
		Map<Integer, String> map=new HashMap<Integer, String>();
		map.put(1, "阿里");
		map.put(2, "腾讯");
		map.put(3, "百度");
		/**
		 * HashMap 通过 entrySet 循环，这里还是不太明白
		 */
		
		for(Map.Entry<Integer, String> entry: map.entrySet()) {
			Integer key=entry.getKey();
			String value=entry.getValue();
			System.out.println("key="+key+" "+"value="+value);
		}
		//移除
		map.remove(1);
		System.out.println(map);
		//替换
		map.put(3, "美团");
		System.out.println(map);
		
		
		map.put(1, "阿里");
		//查询
		String string2 = map.get(2);
		System.out.println(string2);
				
		System.out.println("-------------------------------");
		
		/**
		 * Set集合使用	Iterator 迭代器 获取
		 */
		Set<Integer> keySet = map.keySet();
		Iterator iterator=keySet.iterator();
		while(iterator.hasNext()) {
			Integer integer = (Integer) iterator.next();
			System.out.println(integer);
		}
			
		/**
		 * Collection 获取map集合中所有的values	
		 */
	
		Collection<String> values = map.values();
		
		for(String string:values) {
			System.out.println(string);
		}
	
	}
	
	/**
	 * ConcurrentHashMap
	 */
	
	/**
	 * ArrayList 的用法
	 */
	public static void TestArrayList(){
		 List<String> person=new ArrayList<>();
         person.add("apple");   //索引为0  //.add(e)
         person.add("banana");    //索引为1
         person.add("pear");    //索引为2
         person.add("peach");   //索引为3
         person.add("grape");    //索引为4

         person.remove(3);   //.remove(index)
         person.remove("banana");     //.remove(Object o)
         
         String[] demo= person.toArray(new String[] {});
         System.out.print(demo);
         String per="";
         per=person.get(1);
         System.out.println(per);    ////.get(index)
         
         if (person.contains("grape")){
        	 System.out.println("-----包含grape 葡萄-----");    
         }
         
         	
         for (int i = 0; i < person.size(); i++) {
             System.out.println(person.get(i));  //.get(index)
         }
         System.out.println("---- orange 替换 pear ------");  
         person.set(1, "orange");
         for (int i = 0; i < person.size(); i++) {
             System.out.println(person.get(i));  //.get(index)
         }
         
         System.out.println("--add用法-- 增加pineapple-----");  
         person.add(1, "pineapple");
         for (int i = 0; i < person.size(); i++) {
             System.out.println(person.get(i));  //.get(index)
         }
	}

	/**
	 * Enumeration 枚举的用法
	 */
	
	public static void TestEnumeration(){
	  Enumeration<String> days;
      Vector<String> dayNames = new Vector<String>();
      dayNames.add("Sunday");
      dayNames.add("Monday");
      dayNames.add("Tuesday");
      dayNames.add("Wednesday");
      dayNames.add("Thursday");
      dayNames.add("Friday");
      dayNames.add("Saturday");
      days = dayNames.elements();
      while (days.hasMoreElements()){
         System.out.println(days.nextElement()); 
      }
	}
	
	
	public static void TestSet(){
/**
 * 1,set 元素是无序的,2不存储重复元素,3,set集合底层是基于哈希表存储的。
 * 
 */
		
		 //1.set集合元素的添加,
        Set<String> set = new HashSet<String>();
        set.add("a");
        set.add("b");
        set.add("c");
        set.add("d");
        set.add("e");
        set.add("f");
        set.add("g");
        
        set.add("1");
        set.add("2");
        set.add("3");
        set.add("4");
        set.add("5");
        
        set.add("h");
        set.add("i");
        set.add("j");
        set.add("k");
        set.add("b");
        set.add("c");
        set.add("l");
        set.add("m");
        set.add("n");
        

//        System.out.println( set ); 
//        //2.Iterator迭代器的使用
//        Iterator<String> iterator = set.iterator();
//        while(iterator.hasNext()){
//            String str = iterator.next();
//            if(str.equals("b")){
//                System.out.println("... " + str);
//                //3.set集合元素的删除
//                iterator.remove();
//            }
//        }
//        
//        System.out.println("数量： " + set.size());
//        //
//        Iterator<String> iterator2 = set.iterator();
//        while(iterator2.hasNext()){
//            System.out.println("iterator2... " + iterator2.next());
//        }
        
        for(String a:set){
        	System.out.println(a);
        } 
        
       
	}
	

}
